/******************************************************************************
* Copyright Authors DustinKsi@ Youibot 2019. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*****************************************************************************/

#pragma once

#include "venus/slam/interface/abstract_slam.h"

// TODO: how to use gtsam in my framework?
// TODO: try to integrate correlative matching to my framework from cartographer?
// TODO: try to effectively descript my map?

namespace VEnus {
namespace SLAM {

class DustinSLAM : public AbstractSLAM {
 private:
  DustinSLAM() { CLASS_LOG(DustinSLAM) << "built!!"; }

  friend class SLAMFactory;

 public:
  ~DustinSLAM() { CLASS_LOG(DustinSLAM) << "released!"; }

  bool Init() { return false; }
  bool InsertObservation(VEnus::Sensor::Feature2DList &feature_list,
                         VEnus::Sensor::AdjacencyList &graph, VEnus::Sensor::RobotPose &pose) {
    return false;
  }
};
}
}

// 	    * ^          ^ *
//     # &             $ *
//    $! #             ;# #
//    #  *  ;;#o*&&;; ;; $*
//    ##$  oo$#####**  ;##o
//       $$ *#o### #;;#
//     #;  #& ####; #;  &&
//  ;#     #&  ###  #;    *#
//   #     &$  &#   #     o#
//   #     *$       #     $!
//   ;o     &       #     #
//    $     #       $     ;
//     *    *       *    ;
//           $     o
//            ;   o